/*
 * $Id: AbstractActionWrapper.java 40 2009-12-24 14:58:58Z aaron.day $
 */
package org.crazydays.gameplan.swing;


import javax.swing.AbstractAction;
import javax.swing.Icon;

import org.crazydays.gameplan.Controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * AbstractActionWrapper
 */
public abstract class AbstractActionWrapper
    extends AbstractAction
{
    /** serial version uid */
    public final static long serialVersionUID =
        "$Id: AbstractActionWrapper.java 40 2009-12-24 14:58:58Z aaron.day $"
            .hashCode();

    /** logger */
    protected static Logger LOGGER =
        LoggerFactory.getLogger(AbstractActionWrapper.class);

    /** controller */
    protected Controller controller;

    /**
     * AbstractActionWrapper constructor.
     */
    public AbstractActionWrapper()
    {
        this(null, null, null);
    }

    /**
     * AbstractActionWrapper constructor.
     * 
     * @param controller Controller
     */
    public AbstractActionWrapper(Controller controller)
    {
        this(null, null, controller);
    }

    /**
     * AbstractActionWrapper constructor.
     * 
     * @param text Text
     */
    public AbstractActionWrapper(String text)
    {
        this(text, null, null);
    }

    /**
     * AbstractActionWrapper constructor.
     * 
     * @param text Text
     * @param controller Controller
     */
    public AbstractActionWrapper(String text, Controller controller)
    {
        this(text, null, controller);
    }

    /**
     * AbstractActionWrapper constructor.
     * 
     * @param text Text
     * @param icon Icon
     */
    public AbstractActionWrapper(String text, Icon icon)
    {
        this(text, icon, null);
    }

    /**
     * AbstractActionWrapper constructor.
     * 
     * @param text Text
     * @param icon Icon
     * @param controller Controller
     */
    public AbstractActionWrapper(String text, Icon icon, Controller controller)
    {
        super(text, icon);
        this.controller = controller;
    }
}
